Assistant API Deep dive
コンセプトを頭に入れておく。
アシスタント作成
name, description, model, tools, tool_resources...
スレッド管理とメッセージ
image input content
fidelityをどうするか? high or low or auto
context window managemet
tokenはどれくらい使うか?
Message annotations
file_searchをtoolで使った場合は、file_citation [13+ source]
code_interpreterを使った場合は、file_path ([sandbox:/mnt/data/file.csv])
RunとRun Steps
Threadに全部情報いれたら、threadをRunできる
なので、パラメータで最小限必要なのは、assistant_idとthread_id
追加で、model, instructions, tools
tool_resourcesは、modity assistantで行う?
Runは9個の状態を持つ。
Run Stepsで状態を見ることができる?
https://gyazo.com/c3f18c278497bc6c250923a0ae93fcdf
で、状態を覗いたり、チェックしたりしないといけないが、
シンプルには、Pollingすればよく、helperが NodeとPythonのライブラリにはあるよ。
terminal state(画像にある右の5個の状態)になれば、値がreturnされる。completedを期待してる
あと、terminal stateにない場合は、thread locksになって、新しいmessageが入らない?
terminalになれば、queuedに入れられる?
Data Access Guidance
データアクセスのscopeは、project単位なので、
同一projecetのthreadは、project内のどのvector storeにもアクセスできる。
file_searchと code_interpreterは、assistant apiの強力な武器なので、これも把握しておきたい。
file_searchは1万ファイル
code_interpreterは20ファイル
function calling